<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Http\Requests;
use App\Models\Goods;
use App\Http\Controllers\Controller;
use DB;


class CartController extends Controller
{
    // 加入购物车操作
    public function insert(Request $request)
    {
        // dd($request->all());
        $data=$request->only(['num','id']);
        // 检测当前商品是否存在购物车中
        if ($this->check($data['id'])) {
            // 购物车商品存在 进行数量添加
            $goods=session('cart');
            foreach($goods as $k=>$v){
                if ($v['id']==$data['id']) {
                    $goods[$k]['num'] += $data['num'];
                }
            }
            session(['cart'=>$goods]);
            // dd($goods);
        }else{
            // 将当前数据压入到session中
            $request->session()->push('cart',$data);            
        } 

        return redirect('/cart/index');

    }
    // 检测购物车中的商品是否存在
    private function check($id){
        // 读取购物车信息
        $goods=session('cart');
        if (empty($goods)) {
            return false;
        }
        // 有数据
       foreach($goods as $k=>$v){
            if ($v['id'] == $id) {
                // 商品在购物车中
                return true;
            }
       }
                // 商品不在购物车中
                return false;
    }

    // 显示购物车中的信息
    public function index(Request $request)
    {   
        // $goods=$request->session()->all();
        $goods=session('cart');
        $yonghu=session('id');
        $member=session('member');
        //根据商品ID查询商品信息
        $data=[];
        if(!empty($goods)){
            foreach($goods as $k=>$v){
                $tmp=Goods::find($v['id']);
                $tmp['num']=$v['num'];
                $data[]=$tmp;
            }
        }else{
        echo '购物车没有商品,<a href="/">点击这里返回首页</a>';die;
        // return redirect('/');
    }
        return view('cart.index',['goods'=>$data]);
    }


        //清空购物车
    public function clear(Request $request)
    {
        $request->session()->flush();
    }

    

    //删除购物车商品
    public function delete(Request $request)
    {   
        $id=$request->input('id');
        //删除session中指定的元素
        $data=session('cart');

        //遍历
        foreach ($data as $key => $value) {
            if($value['id']==$id){
                unset($data[$key]);
            }
        }

        session(['cart'=>$data]);

        return back();

    }
}

